﻿using QuanLyChoVayCaNhan.Classes;
using QuanLyChoVayCaNhan.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuanLyChoVayCaNhan.Forms
{
    public partial class EditThamDinhTinDung : Form
    {
        private HoSo data = null;
        public EditThamDinhTinDung()
        {
            InitializeComponent();
            data = Activity.GetInstance().CopyHoSo((HoSo)WindowsManager.GetInstance().TabThamDinhTinDung.SelectedItem);
            if (data.SoThamDinh == null || data.SoThamDinh == 0)
            {
                if (UserManager.GetInstance().IsCBTDTD())
                {
                    // lap bao cao tham dinh moi
                    int so;
                    if (soThamDinhTextBox.Text == null || soThamDinhTextBox.Text.Length == 0 || !int.TryParse(soThamDinhTextBox.Text.Trim(), out so) || data.SoThamDinh == 0)
                    {
                        var temp = ModelManager.GetInstance().db.CreateSoBaoCaoTinDung().ToList().FirstOrDefault();
                        if (temp == null) data.SoThamDinh = 1;
                        else data.SoThamDinh = (((int)temp.Value) + 1);
                        soThamDinhTextBox.Text = data.SoThamDinh.ToString();
                    }
                    this.data.NgayThamDinh = DateTime.Now;
                    this.data.NhanVienCBTDTD = UserManager.GetInstance().GetNhanVien();
                    this.data.MaNVCBTDTD = UserManager.GetInstance().GetMaNhanVien();
                }
                else
                {
                    MessageBox.Show("Bạn không có quyền lập báo cáo thẩm định tín dụng");
                    this.Close();
                }
            }
            else if (data.MaNVCBTDTD != UserManager.GetInstance().GetMaNhanVien())
            {
                MessageBox.Show("Bạn không có quyền cập nhật báo cáo thẩm định tín dụng này");
                this.Close();
            }
        }
        // huy
        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // luu và đóng
        private void button2_Click(object sender, EventArgs e)
        {
            HoSo hs = ModelManager.GetInstance().db.HoSoes.FirstOrDefault((x) => x.MaHS == data.MaHS);
            if (hs == null)
            {
                MessageBox.Show("Hồ sơ này không tồn tại hoặc đã bị xóa");
                return;
            }
            if (this.soThamDinhTextBox.Text == null || this.soThamDinhTextBox.Text.Length == 0)
            {
                MessageBox.Show("Bạn chưa nhập số báo cáo thẩm định");
                return;
            }
            int soThamDinh;
            if (!int.TryParse(soThamDinhTextBox.Text, out soThamDinh) || soThamDinh <= 0) {
                MessageBox.Show("Số thẩm định phải là một số tự nhiên");
                return;
            }
            hs.SoThamDinh = soThamDinh;
            hs.NgayThamDinh = data.NgayThamDinh;
            hs.NangLucPLDSHVDS = this.nangLucPLHVDSTextBox.Text;
            hs.MucDichSDVV = this.mucDichSDVVTextBox.Text;
            hs.KhaNangTC = this.khaNangTCTextBox.Text;
            hs.TinhKhaThiHQDA = this.tinhKhaThiHQDATextBox.Text;
            hs.TSDamBaoTV = this.tSDamBaoTVTextBox.Text;
            hs.YKienCBTD = this.yKienCBTDTextBox.Text;
            hs.YKienGiamDoc = this.yKienGiamDocTextBox.Text;
            hs.MaNVCBTDTD = UserManager.GetInstance().GetMaNhanVien();
            hs.Modified = DateTime.Now;
            ModelManager.GetInstance().db.SaveChanges();
            this.Close();
        }

        private void ViewThamDinhTinDung_Load(object sender, EventArgs e)
        {
            this.hoSoBindingSource.DataSource = this.data;
        }
        // luu va in
        private void button3_Click(object sender, EventArgs e)
        {
            HoSo hs = ModelManager.GetInstance().db.HoSoes.FirstOrDefault((x) => x.MaHS == data.MaHS);
            if (hs == null)
            {
                MessageBox.Show("Hồ sơ này không tồn tại hoặc đã bị xóa");
                return;
            }
            if (this.soThamDinhTextBox.Text == null || this.soThamDinhTextBox.Text.Length == 0)
            {
                MessageBox.Show("Bạn chưa nhập số báo cáo thẩm định");
                return;
            }
            int soThamDinh;
            if (!int.TryParse(soThamDinhTextBox.Text, out soThamDinh) || soThamDinh <= 0)
            {
                MessageBox.Show("Số thẩm định phải là một số tự nhiên");
                return;
            }
            hs.SoThamDinh = soThamDinh;
            hs.NgayThamDinh = data.NgayThamDinh;
            hs.NangLucPLDSHVDS = this.nangLucPLHVDSTextBox.Text;
            hs.MucDichSDVV = this.mucDichSDVVTextBox.Text;
            hs.KhaNangTC = this.khaNangTCTextBox.Text;
            hs.TinhKhaThiHQDA = this.tinhKhaThiHQDATextBox.Text;
            hs.TSDamBaoTV = this.tSDamBaoTVTextBox.Text;
            hs.YKienCBTD = this.yKienCBTDTextBox.Text;
            hs.YKienGiamDoc = this.yKienGiamDocTextBox.Text;
            hs.MaNVCBTDTD = UserManager.GetInstance().GetMaNhanVien();
            hs.Modified = DateTime.Now;
            ModelManager.GetInstance().db.SaveChanges();
            hs = ModelManager.GetInstance().db.HoSoes.FirstOrDefault((x) => x.MaHS == data.MaHS);
            PrintManager.GetInstance().InBaoCaoThamDinhTinDung(hs);
        }


    }
}
